Marinate the fish with a pinch of salt, turmeric powder and red chili powder for 10 minutes. Blend the onion, tomato, ginger and garlic to a smooth paste. Keep aside.
Heat oil in a pan and fry the fish till light golden in colour. Drain and keep aside. Temper the same oil with dry red chilies, bay leaves, cinnamon, cloves, cardamom and cumin seeds. Saute for a few seconds.
Add the onion paste and stir fry till the oil separates. Add all the dry spices (except garam masala) and mix well.
Add the yoghurt and continue to saute till the oil leaves the sides of the pan. Add 1 cup water and bring it to a boil. Gently drop in the fried fish and cover.
Simmer for 4-5 minutes. When done, add the garam masala and ghee. Mix well and switch off the flame. Garnish with coriander leaves and serve with hot steamed rice.